package com.legolas.spring.aspectj;

/**
 * Created with IntelliJ IDEA.
 * User: Legolas
 * Date: 2016/11/8 0008
 * Time: 10:20
 */

import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

/**
 * @Pointcut 是切入点声明，指定需要注入的代码的位置，如上例中指定切入点为 CustomerBo 类中的所有方法，
 * 在实际业务中往往是指定切入点到一个逻辑层，例如 execution (* com.lei.business.service.*.*(..)），
 * 表示 aop 切入点为 service 包中所有类的所有方法
 */
@Aspect
public class PointcutsDefinition {
    //指定addCustomer方法为切入点
    @Pointcut("execution(* com.legolas.spring.aspectj.CustomerBoServiceImpl.addCustomer())")
    //切入点定义、定义切入点名称。在@Aspect注解的类中，针对切入点名称注入切入方法。
    public void addCustomerLog() {
    }

    //指定deleteCustomer方法为切入点
    @Pointcut("execution(* com.legolas.spring.aspectj.CustomerBoServiceImpl.deleteCustomer())")
    public void deleteCustomerLog() {
    }


}